<?php
/*******创蓝公司提供的接口，
 * 公司网址：www.cl2009.com
 * 联系电话：400-6818-253VIP
 * 0    提交成功
 * 101    无此用户
 * 102    密码错
 * 103    提交过快（提交速度超过流速限制）
 * 104    系统忙（因平台侧原因，暂时无法处理提交的短信）
 * 105    敏感短信（短信内容包含敏感词）
 * 106    消息长度错（>536或<=0）
 * 107    包含错误的手机号码
 * 108    手机号码个数错（群发>50000或<=0;单发>200或<=0）
 * 109    无发送额度（该用户可用短信数已使用完）
 * 110    不在发送时间内
 * 111    超出该账户当月发送额度限制
 * 112    无此产品，用户没有订购该产品
 * 113    extno格式错（非数字或者长度不对）
 * 115    自动审核驳回
 * 116    签名不合法，未带签名（用户必须带签名的前提下）
 * 117    IP地址认证错,请求调用的IP地址不是系统登记的IP地址
 * 118    用户没有相应的发送权限
 * 119    用户已过期
 *
 * 1.2    参数定义
 *
 * 序号    参数    说明
 * 1    account    必填参数。用户账号
 * 2    pswd    必填参数。用户密码
 * 3    mobile    必填参数。合法的手机号码，号码间用英文逗号分隔
 * 4    msg    必填参数。短信内容，短信内容长度不能超过585个字符。使用URL方式编码为UTF-8格式。短信内容超过70个字符（企信通是60个字符）时，会被拆分成多条，然后以长短信的格式发送。
 * 5    needstatus    必填参数。是否需要状态报告，取值true或false，true，表明需要状态报告；false不需要状态报告
 * 6    product    可选参数。用户订购的产品id，不填写（针对老用户）系统采用用户的默认产品，用户订购多个产品时必填，否则会发生计费错误。
 * 7    extno    可选参数，扩展码，用户定义扩展码，3位
 *
 * 对接****/
namespace Common\Org\Sms\Driver;
class Bluesms
{
    public function __construct($setting)
    {
        $this->account = $setting['keyword'];
        $this->password = $setting['password'];
        $this->url = "http://222.73.117.158/msg/HttpBatchSendSM";
    }

    /**
     * 短信发送接口
     * @return array 结果数组
     */
    public function send($mobile, $msg, $needstatus = 'true', $product = '', $extno = '')
    {
        $postArr = array(
            'account' => $this->account,
            'pswd' => $this->password,
            'msg' => $msg,
            'mobile' => $mobile,
            'needstatus' => $needstatus,
            'product' => $product,
            'extno' => $extno
        );
        $postArr = http_build_query($postArr);
        $result = mycurl($this->url, $postArr);
        $result = $this->execResult($result);
        $this->postArr = $postArr;
        $this->result = $result;
        if ($result[1] == 0) {
            return true;
        } else {
            return $result;
        }
    }

    /**
     * 处理返回值
     *
     */
    public function execResult($result)
    {
        $result = preg_split("/[,\r\n]/", $result);
        return $result;
    }

}